lexer grammar twi_sparql;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 416
WS
    : (' '| '\t'| EOL)+ { skip(); $channel=HIDDEN; }
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 420
PNAME_NS
    : p=PN_PREFIX? ':'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 424
PNAME_LN
    : PNAME_NS PN_LOCAL
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 428
BASE
    : ('B'|'b')('A'|'a')('S'|'s')('E'|'e')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 432
PREFIX
    : ('P'|'p')('R'|'r')('E'|'e')('F'|'f')('I'|'i')('X'|'x')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 436
SELECT
    : ('S'|'s')('E'|'e')('L'|'l')('E'|'e')('C'|'c')('T'|'t')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 440
DISTINCT
    : ('D'|'d')('I'|'i')('S'|'s')('T'|'t')('I'|'i')('N'|'n')('C'|'c')('T'|'t')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 444
REDUCED
    : ('R'|'r')('E'|'e')('D'|'d')('U'|'u')('C'|'c')('E'|'e')('D'|'d')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 448
CONSTRUCT
    : ('C'|'c')('O'|'o')('N'|'n')('S'|'s')('T'|'t')('R'|'r')('U'|'u')('C'|'c')('T'|'t')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 452
DESCRIBE
    : ('D'|'d')('E'|'e')('S'|'s')('C'|'c')('R'|'r')('I'|'i')('B'|'b')('E'|'e')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 456
ASK
    : ('A'|'a')('S'|'s')('K'|'k')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 460
FROM
    : ('F'|'f')('R'|'r')('O'|'o')('M'|'m')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 464
NAMED
    : ('N'|'n')('A'|'a')('M'|'m')('E'|'e')('D'|'d')
    ;   

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 468
WHERE
    : ('W'|'w')('H'|'h')('E'|'e')('R'|'r')('E'|'e')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 472
ORDER
    : ('O'|'o')('R'|'r')('D'|'d')('E'|'e')('R'|'r')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 476
BY
    : ('B'|'b')('Y'|'y')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 480
ASC
    : ('A'|'a')('S'|'s')('C'|'c')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 484
DESC
    : ('D'|'d')('E'|'e')('S'|'s')('C'|'c')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 488
LIMIT
    : ('L'|'l')('I'|'i')('M'|'m')('I'|'i')('T'|'t')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 492
OFFSET
    : ('O'|'o')('F'|'f')('F'|'f')('S'|'s')('E'|'e')('T'|'t')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 496
OPTIONAL
    : ('O'|'o')('P'|'p')('T'|'t')('I'|'i')('O'|'o')('N'|'n')('A'|'a')('L'|'l')
    ;  

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 500
GRAPH
    : ('G'|'g')('R'|'r')('A'|'a')('P'|'p')('H'|'h')
    ;   

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 504
UNION
    : ('U'|'u')('N'|'n')('I'|'i')('O'|'o')('N'|'n')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 508
FILTER
    : ('F'|'f')('I'|'i')('L'|'l')('T'|'t')('E'|'e')('R'|'r')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 512
A
    : 'a'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 516
STR
    : ('S'|'s')('T'|'t')('R'|'r')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 520
LANG
    : ('L'|'l')('A'|'a')('N'|'n')('G'|'g')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 524
LANGMATCHES
    : ('L'|'l')('A'|'a')('N'|'n')('G'|'g')('M'|'m')('A'|'a')('T'|'t')('C'|'c')('H'|'h')('E'|'e')('S'|'s')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 528
DATATYPE
    : ('D'|'d')('A'|'a')('T'|'t')('A'|'a')('T'|'t')('Y'|'y')('P'|'p')('E'|'e')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 532
BOUND
    : ('B'|'b')('O'|'o')('U'|'u')('N'|'n')('D'|'d')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 536
SAMETERM
    : ('S'|'s')('A'|'a')('M'|'m')('E'|'e')('T'|'t')('E'|'e')('R'|'r')('M'|'m')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 540
ISIRI
    : ('I'|'i')('S'|'s')('I'|'i')('R'|'r')('I'|'i')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 544
ISURI
    : ('I'|'i')('S'|'s')('U'|'u')('R'|'r')('I'|'i')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 548
ISBLANK
    : ('I'|'i')('S'|'s')('B'|'b')('L'|'l')('A'|'a')('N'|'n')('K'|'k')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 552
ISLITERAL
    : ('I'|'i')('S'|'s')('L'|'l')('I'|'i')('T'|'t')('E'|'e')('R'|'r')('A'|'a')('L'|'l')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 556
REGEX
    : ('R'|'r')('E'|'e')('G'|'g')('E'|'e')('X'|'x')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 560
TRUE
    : ('T'|'t')('R'|'r')('U'|'u')('E'|'e')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 564
FALSE
    : ('F'|'f')('A'|'a')('L'|'l')('S'|'s')('E'|'e')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 568
IRI_REF
    : LESS ( options {greedy=false;} : ~(LESS | GREATER | '"' | OPEN_CURLY_BRACE | CLOSE_CURLY_BRACE | '|' | '^' | '\\' | '`' | ('\u0000'..'\u0020')) )* GREATER { setText($text.substring(1, $text.length() - 1)); }
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 572
BLANK_NODE_LABEL
    : '_:' t=PN_LOCAL { setText($t.text); }
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 576
VAR1
    : '?' v=VARNAME { setText("?"+$v.text); }
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 580
VAR2
    : '$' v=VARNAME { setText("$"+$v.text); }
    ;
// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 583
VAR3
    	:	'!' v=VARNAME {setText("!"+$v.text);}
    	;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 587
LANGTAG
    : '@' PN_CHARS_BASE+ (MINUS (PN_CHARS_BASE DIGIT)+)*
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 591
INTEGER
    : DIGIT+
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 595
DECIMAL
    : DIGIT+ DOT DIGIT*
    | DOT DIGIT+
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 600
DOUBLE
    : DIGIT+ DOT DIGIT* EXPONENT
    | DOT DIGIT+ EXPONENT
    | DIGIT+ EXPONENT
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 606
INTEGER_POSITIVE
    : PLUS INTEGER
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 610
DECIMAL_POSITIVE
    : PLUS DECIMAL
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 614
DOUBLE_POSITIVE
    : PLUS DOUBLE
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 618
INTEGER_NEGATIVE
    : MINUS INTEGER
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 622
DECIMAL_NEGATIVE
    : MINUS DECIMAL
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 626
DOUBLE_NEGATIVE
    : MINUS DOUBLE
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 630
fragment
EXPONENT
    : ('e'|'E') (PLUS|MINUS)? DIGIT+
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 635
STRING_LITERAL1
    : '\'' ( options {greedy=false;} : ~('\u0027' | '\u005C' | '\u000A' | '\u000D') | ECHAR )* '\''
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 639
STRING_LITERAL2
    : '"'  ( options {greedy=false;} : ~('\u0022' | '\u005C' | '\u000A' | '\u000D') | ECHAR )* '"'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 643
STRING_LITERAL_LONG1
    :   '\'\'\'' ( options {greedy=false;} : ( '\'' | '\'\'' )? ( ~('\''|'\\') | ECHAR ) )* '\'\'\''
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 647
STRING_LITERAL_LONG2
    :   '"""' ( options {greedy=false;} : ( '"' | '""' )? ( ~('"'|'\\') | ECHAR ) )* '"""'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 651
fragment
ECHAR
    : '\\' ('t' | 'b' | 'n' | 'r' | 'f' | '\\' | '"' | '\'')
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 656
fragment
PN_CHARS_U
    : PN_CHARS_BASE | '_'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 661
fragment
VARNAME
    : ( PN_CHARS_U | DIGIT ) ( PN_CHARS_U | DIGIT | '\u00B7' | '\u0300'..'\u036F' | '\u203F'..'\u2040' )*
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 666
fragment
PN_CHARS
    : PN_CHARS_U
    | MINUS
    | DIGIT
    | '\u00B7' 
    | '\u0300'..'\u036F'
    | '\u203F'..'\u2040'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 676
fragment
PN_PREFIX
    : PN_CHARS_BASE ((PN_CHARS|DOT)* PN_CHARS)?
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 681
fragment
PN_LOCAL
    : ( PN_CHARS_U | DIGIT ) ((PN_CHARS|DOT)* PN_CHARS)?
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 686
fragment
PN_CHARS_BASE
    : 'A'..'Z'
    | 'a'..'z'
    | '\u00C0'..'\u00D6'
    | '\u00D8'..'\u00F6'
    | '\u00F8'..'\u02FF'
    | '\u0370'..'\u037D'
    | '\u037F'..'\u1FFF'
    | '\u200C'..'\u200D'
    | '\u2070'..'\u218F'
    | '\u2C00'..'\u2FEF'
    | '\u3001'..'\uD7FF'
    | '\uF900'..'\uFDCF'
    | '\uFDF0'..'\uFFFD'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 703
fragment
DIGIT
    : '0'..'9'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 708
COMMENT 
    : '#' ( options{greedy=false;} : .)* EOL { $channel=HIDDEN; }
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 712
fragment
EOL
    : '\n' | '\r'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 717
REFERENCE
    : '^^'
 ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 721
LESS_EQUAL
    : '<='
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 725
GREATER_EQUAL
    : '>='
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 729
NOT_EQUAL
    : '!='
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 733
AND
    : '&&'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 737
OR
    : '||'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 741
OPEN_BRACE
    : '('
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 745
CLOSE_BRACE
    : ')'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 749
OPEN_CURLY_BRACE
    : '{'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 753
CLOSE_CURLY_BRACE
    : '}'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 757
OPEN_SQUARE_BRACE
    : '['
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 761
CLOSE_SQUARE_BRACE
    : ']'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 765
SEMICOLON
    : ';'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 769
DOT
    : '.'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 773
PLUS
    : '+'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 777
MINUS
    : '-'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 781
ASTERISK
    : '*'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 785
COMMA
    : ','
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 789
NOT
    : '!'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 793
DIVIDE
    : '/'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 797
EQUAL
    : '='
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 801
LESS
    : '<'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 805
GREATER
    : '>'
    ;

// $ANTLR src "C:\Dokumente und Einstellungen\Soeren\Desktop\twi_sparql.g" 809
ANY : .
    ;

// $>
